Database Setup
The Temenos database is an integral part of the Temenos Digital solution. It serves as the store for various services available as part of the Digital Banking Platform. It also acts as the back-end data store for many more local services which simulate core digital banking functionality and are expected to be used during development and demonstrations.
Temenos provides Flyway™ database scripts for Temenos database deployment and migration. For more information on Flyway™, click here.
- Make sure that you have the database installed in the system before you proceed with the next steps in this section. For more details on storage requirements, click here.
- Make sure of the following before setting up the database. It is mandatory to add the following values in the my.ini file:
- group_concat_max_len=16777216
- max_allowed_packet=50M
- If the Transact DB is refreshed, then it is mandatory to refresh the Party MS and DBXDB as well.
Supported Database
Infinity Layer / Stack | Stack 7
On Prem |
Stack 8
AWS |
Stack 9
Azure Cloud |
Stack 11 OpenShift |
---|---|---|---|---|
Fabric Database | MySQL 5.7 | Amazon RDS for MySQL 5.7 | MS SQL Server 2019 | MySQL 8.0.26 |
DBX DB | MySQL 8.0.28 | Amazon RDS for MySQL 5.7 |
|
Any of these:
|
Microservices SQL DB based | MySQL 8.0.28 |
|
MySQL 8.0.28 |
Any of these:
|
Microservices NoSQL based | PostgreSQL 13.1 | PostgreSQL 13.1 | PostgreSQL 13.1 |
Any of these:
|
Red Hat PAM | MySQL 8.0.28 | Aurora MySQL 8.0 | MySQL 8.0.28 |
Any of these:
|
Keycloak | PostgreSQL 13.1 | Aurora PostgreSQL 13 | PostgreSQL 13.1 | PostgreSQL 13.0 |
*Not supported and it will be only manual installation. ^Delivering as customer specific packs on request basis. Not available out-of-the-box. |
Download Artifacts
To download the artifacts required for the database set up, see Download Software Assets or contact your Temenos representative. See the table to determine the correct database scripts that must be set up in your system.
The names of the database scripts are suffixed with a <<major_version>>.<<minor_version>>.<<fix_version>>
format for every release.
Schema List
Flyway™ Script | Description | Do I have to install this? | Default Schema | Discovery Path |
---|---|---|---|---|
DBXDBMigrations-x.x.x.jar
|
Temenos Digital schema for core services, user management and Spotlight functionality | This is the base schema which is mandatory for any Digital Banking Solution to work. | dbxdb | Spotlight_App-vx.x.x\Spotlight_App-vx.x.x\dist\tools |
LogServicesDBMigrations-x.x.x.jar
|
Temenos Digital schema for application and audit logs | This is mandatory for the application and audit logging functionality incorporated into the core services. | dbxlogs | Spotlight_App-vx.x.x\Spotlight_App-vx.x.x\dist\tools |
OpenApisDbMigration-x.x.x.jar
(Certified only till v4.2.2) |
Temenos Digital schema for Open APIs | This is required only if you will be exposing your existing core services as Open APIs for consumption by external third party providers. | dbpopenapis | DigitalBankingPlatform_App-vx.x.x\DigitalBankingPlatform_App-vx.x.x\Database\OpenAPIs_DB_vx.x.x\OpenAPIs_DB_vx.x.x |
IDMDBMigrations-x.x.x.jar
|
Temenos Digital identity management schema for Keycloak integration. | This is mandatory for the spotlight application to work with third party IDM. | db: keycloak schema: public | Spotlight_App-vx.x.x\Spotlight_App-vx.x.x\dist\tools |
Database Migration Scenarios
Depending on the initial state of the database, the execution of the database scripts will result in the following outcomes:
Initial Database State | What the Flyway™ tool execution does |
---|---|
Temenos Digital schema does not exist |
|
Temenos Digitalschema exists. Flyway™ scripts being executed for the first time |
|
Temenos Digital schema exists and Flyway™ scripts have been executed for an earlier version |
|
Database Migration Tool Execution
The scripts provided by Temenos can be executed through the command line using the following syntax:
Make sure you have installed an appropriate JVM.
If database is SQL server, Flyway cannot create database. Therefore, connect to SQL Server through any client tool and create the database using the following query.
MYSQL: java -Ddb.user=<<database_username>> -Ddb.password=<<database_user_password>> -Ddb.host=<<database_host_IP>> -Ddb.port=<<database_port>> -Ddb.name=<<db_name>> -Ddb.type=<<database_provider_type>> -jar <<Migrations_JAR_NAME.jar>>
SQL Server: java -Ddb.user=<<database_username>> -Ddb.password=<<database_user_password>> -Ddb.host=<<database_host_IP>> -Ddb.port=<<database_port>> -Ddb.name=<<db_name>> -Ddb.schemaName=<<schema_name>> -Ddb.type=<<database_provider_type>> -jar <<Migrations_JAR_NAME.jar>>
If database is Oracle server, create the database using the following query:
Java command to create dbxdb database
java -Ddb.user=\"dbxdb\" -Ddb.password="dbxdb" -Ddb.host=20.82.187.101 -Ddb.port=1521 -Ddb.name=dbxdb -Ddb.serviceName=pdbone -Ddb.type=ORACLE -jar "./DBXDBMigrations-202104.05.jar" >>
Java command to create dbxlogs database
java -Ddb.user=\"dbxlogs\" -Ddb.password="dbxlogs" -Ddb.host=20.82.187.101 -Ddb.port=1521 -Ddb.name= dbxlogs -Ddb.serviceName=pdbone -Ddb.type=ORACLE -jar "./LogServicesDBMigrations- 202104.05.jar"
The following table describes the parameters mentioned in the syntax:
Parameter | Description | Mandatory? | Sample Values |
---|---|---|---|
db.user | Username of the database user with necessary privileges. | Mandatory | root |
db.password | Password of the database user in plain text. | Mandatory | admin |
db.host | Fully qualified host name or URL of the database instance. | Mandatory | 192.168.0.1 |
db.port | Port number on which the target database is running. | Mandatory | 3306 |
db.name | Name of the target schema. | Mandatory |
dbxdb See schema list for the default schema list |
db.realmName | Name of the spotlight realm. | Mandatory | spotlight -jar IDMDBMigrations-0.0.1-SNAPSHOT.jar |
db.type | Type of the Database. | Mandatory | MYSQL |
db.schemaName | This is mandatory for SQL Server database. Database name will be the same but schema name must be different for the required two db migrations. | Mandatory | dbxdb, dbxlogs |
db.conn.props | Additional properties to be added to the connection string. The properties must be enclosed within double quotes. | Optional | "useSSL=false" |
db.custom.migrations.path | Path to the folder containing custom scripts that are to be executed after the product native scripts. | Optional | "D:\CustomMigrations" |
Execute the Scripts for Temenos Digital Schema
Replace the execution parameters as per your installation and file names as per the version.
Temenos Digital Core Schema
MySQL: java -Ddb.user=root -Ddb.password=admin -Ddb.host=10.10.1.145 -Ddb.port=3306 -Ddb.name=dbxdb -Ddb.type=MYSQL -jar DBXDBMigrations-4.2.0.jar
SQL Server: java -Ddb.user=root -Ddb.password=admin -Ddb.host=10.10.1.145 -Ddb.port=3306 -Ddb.name=dbxdb -Ddb.schemaName=dbxdb -Ddb.type=MSSQL -jar DBXDBMigrations-4.2.0.jar
DBX Log Services
MySQL: java -Ddb.user=root -Ddb.password=admin -Ddb.host=10.10.1.145 -Ddb.port=3306 -Ddb.name=konydbplog -Ddb.type=MYSQL -jar LogServicesDBMigrations-4.2.0.jar
DBX Open APIs (valid only till v4.2.2)
java -Ddb.user=root -Ddb.password=admin -Ddb.host=10.10.1.145 -Ddb.port=3306 -Ddb.name=dbpopenapis -Ddb.type=MYSQL -jar OpenApisDbMigration-4.2.0.jar
DBX IDM Service
java -Ddb.user=keycloak -Ddb.password=password -Ddb.host=10.10.1.145 -Ddb.port=5432 -Ddb.name=keycloak -Ddb.type=POSTGRES -Ddb.schemaName=public -Ddb.realmName=spotlight -jar IDMDBMigrations-0.0.1-SNAPSHOT.jar
Execute the Script to Avoid Issue while Creating Corporate Users
After the database is set up, execute the script file for on-premise installations. This avoids the issue while creating corporate users.
Click here for script file
Steps to resolve checksum issue while upgrading database
- Go to the log file of the migration results. Check the version number for which we need to update the checksum value.
This value is currently applied to db. "Applied to database: 1001123983"
For the version specified in the log file, we need to change the above value to the log file. Resolved locally: -827176556 - Execute MySQL query to update the checksum value: UPDATE flyway_schema_history SET checksum = << Resolved locally >> where version = <<version>>;
Version | Checksum |
---|---|
'2022.04' | '1575982952' |
'2022.04.1' | '388456178' |
'2022.04.2' | 133973211' |
'2022.04.3' | '-827176556' |
'2022.07' | 731720480' |
'2022.07.1' | '-93533165' |
'2022.07.2' | '1799307737' |
'2022.10' | '-922754715' |
'2023.01' | '475614256' |
'2023.03' | '1570517579' |
'2023.04' | '281669275' |
Custom Scripts
In certain scenarios, you may want to augment the standard scripts provided by Temenos with additional requirements of your own. This is generally required to enhance the attributes in the existing schema and set up default data for your installation. The following must be considered to achieve:
- Create a folder (for example: CustomMigrations) to hold the additional scripts.
- This folder must have two scripts
ddl.sql
anddml.sql
which refer to the DDL and DML scripts respectively. - The custom DDL scripts must not modify any table/view/stored procedure of the base product schema.
- The custom DDL scripts must only add new tables/columns/views/stored procedures by following the naming conventions to avoid conflicts with future DDL scripts of the base product.
- A new column being added to an existing base product table must either be prefixed with "c_" or suffixed with "_c". For example: c_firstname, firstname_c.
- A new table being added to an existing base product schema must either be prefixed with "c_" or suffixed with "_c". For example: c_account, account_c.
- A new view or stored procedure being added to an existing base product schema must either be prefixed with "c_" or suffixed with "_c". For example: c_transactions_view, transactions_view_c etc.
Configure the Core Type for Business Enrollment
This is a deployment time configuration maintained in the application table of DBX DB. This configuration allows to select between an account centric method or a customer centric method for business enrollments and management of company information in Spotlight. FIs could select either configuration depending on the type of flow that is supported by the core banking system used by the FI.
The flows like business enrollment through Retail Banking applications and managing Companies information in Spotlight would vary depending on the core type configured here.
You can configure the core type from the following location:
- Database: DBXDB
- Table: Application
- Field: isAccountCentricCore
- Value: 0 (default value)
- 1 - It denotes account centric flow.(Deprecated after introduction of Contracts in 21.04)
- 0 - Change it to 0 if you need customer centric flow.
For the out-of-the-box application, the application maintains both types of sample core data for user experience. Refer to Manage Contracts to view the functional difference between the flows.
In this topic